//
//  ALPrefixWrapper.swift
//  KeenExtension
//
//  Created by chongzone on 2020/6/15.
//

import Foundation
import UIKit

/// 扩展命名空间
public struct ALPrefixWrapper<Base> {
    
    public let base: Base
    
    public init(_ base: Base) {
        self.base = base
    }
}

/// 对象类型
public protocol ALPrefixWrapperCompatible: AnyObject {}

/// 任意类型
public protocol ALPrefixWrapperCompatibleValue { }

extension ALPrefixWrapperCompatible {
    
    public var AL: ALPrefixWrapper<Self> {
        get { return ALPrefixWrapper(self) }
        set { }
    }
    
    public static var AL: ALPrefixWrapper<Self>.Type {
        get { return ALPrefixWrapper<Self>.self }
        set { }
    }
}

extension ALPrefixWrapperCompatibleValue {
    
    public var AL: ALPrefixWrapper<Self> {
        get { return ALPrefixWrapper(self) }
        set { }
    }
    
    public static var AL: ALPrefixWrapper<Self>.Type {
        get { return ALPrefixWrapper<Self>.self }
        set { }
    }
}
